home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / gt_power / gtrpcb14.zip / GTRUNPCB.DOC next >
Text File  |  1989-04-24  |  43KB  |  770 lines

  1.  
  2.                                     GTRUNPCB 
  3.  
  4.                    A PCBoard Door Interface For GT Power BBSes
  5.  
  6.                                  Version 1.40
  7.  
  8.             These programs, both in executable and source code form,
  9.                    as well as all associated documentation are
  10.                            Copr. 1989 by Scott Swaine 
  11.  
  12.  
  13.  
  14.   DISCLAIMER:
  15.   ----------
  16.  
  17.     I make no warranties, either expressed or implied, as to the usefulness 
  18.     of this product under any application.  I will not be held liable for 
  19.     any damages, either incidental or consequential, that may arise from 
  20.     the use or misuse of this product. 
  21.  
  22.  
  23.   DISTRIBUTION:
  24.   ------------
  25.  
  26.     Redistribution of this software is subject to the following: 
  27.  
  28.        o  It may NOT be modified in any way.
  29.        o  It may not be sold or otherwise distributed for profit 
  30.           save for the following exceptions:
  31.           - Users groups and Public Domain software houses that 
  32.             distribute software for a nominal handling/media fee not
  33.             to exceed five (5) dollars (US).
  34.           - Online services that charge a fee for general access to 
  35.             the system.
  36.        o  No fee may be charged for it's use in any situation. 
  37.        o  All associated files comprising this package must be 
  38.           included in the same archive-type file.
  39.  
  40.     The source code is not being released for distribution.
  41.  
  42.  
  43.   CREDITS:
  44.   -------
  45.  
  46.     First off, let me give credit where credit is due.  I wish to thank the 
  47.     people who helped contribute to this program by providing me with the 
  48.     information I needed on the file formats for these PCBoard files.  I 
  49.     especially want to say thanks to Carl Evans, Sysop of Vervan's War 
  50.     Board, 714-989-7596.  Without his help, much of the information needed 
  51.     to make the PCBOARD.DAT file editor would have been much harder to come 
  52.     by.  I'm thankful for his patience, too!  For all the persistent 
  53.     nagging I put him through, asking questions of one kind or another, I'm 
  54.     STILL a member of his very fine BBS! 
  55.  
  56.     I also want to thank Harwood Software Associates for providing their 
  57.     fast and easy-to-use screen writing routines in HSA_TEXT which I'm 
  58.     using in MAKE_DAT.  This saved me a lot of extra work in the screen 
  59.     display routines.   
  60.  
  61.  
  62.   OVERVIEW:
  63.   --------
  64.  
  65.     One of the best things about BBSes nowadays are the 'doors'.  Doors are 
  66.     programs, like games and utilities, that are not usually a part of the 
  67.     BBS software itself.  There are many different kinds of programs that 
  68.     can be used in a door.  Many of these are 'dedicated' door programs.  
  69.     This means that they were always intended to be run in a door and 
  70.     therefore have built-in support for using the comm port, monitoring the 
  71.     carrier, etc.  Since these kinds of programs usually need some info 
  72.     from the BBS in order for them to know whether the user is 'local' (at 
  73.     the console) or 'remote' (calling in from somewhere else), what comm 
  74.     port is being used at this time, who the user is, how much time is left 
  75.     and various other pieces of info that tell it what was going on inside 
  76.     the BBS, the door program is usually designed to be specific to a 
  77.     particular kind of BBS software.  While this makes it very easy to set 
  78.     it up for use with THAT software, it makes it nearly impossible to use 
  79.     it with a different BBS software package.  Thus arises the need for 
  80.     conversion programs to make the info that the one BBS provides for it's 
  81.     door facility available for the other BBS's doors. 
  82.  
  83.     In this package, otherwise known as an 'archive', should be several 
  84.     files.  The following is a list: 
  85.  
  86.         GTRUNPCB.DOC - The thing you're gawking at now! 
  87.         PCBDATRF.ZIP - A reference guide to the PCBOARD.DAT file formats. 
  88.         MAKE_DAT.EXE - The utility to create the file PCBOARD.DAT. 
  89.         MAKE_SYS.EXE - The utility to create the file PCBOARD.SYS. 
  90.         MAKE_USR.EXE - The utility to create the file USERS.
  91.         MAKE_USR.CFG - A configuration file for MAKE_USR.EXE.
  92.         README.*     - An addendum to the docs with last minute info. 
  93.         UPDATE.DOC   - Version update registry.
  94.  
  95.     If the ZIP you received does NOT have all of the above files in it, a 
  96.     complete copy can be downloaded from my BBS (see the info at the end of 
  97.     this documentation).  
  98.  
  99.     MAKE_SYS, MAKE_DAT and MAKE_USR are all equipped to handle the file 
  100.     formats used by PCBoard version 12.1 and 14.0. 
  101.     
  102.     MAKE_SYS creates the file PCBOARD.SYS, which is required by all PCBoard 
  103.     door programs.  It provides the information on the current user that 
  104.     the door needs to function properly.  You will need to run MAKE_SYS 
  105.     just prior to running the PCBoard door program (unless you're using 
  106.     MAKE_USR). 
  107.  
  108.     MAKE_DAT is needed only for those doors that insist on using some of 
  109.     the information that is stored in a file called PCBOARD.DAT.  The 
  110.     PCBOARD.DAT file contains various configuration information for a 
  111.     PCBoard BBS.  This information consists of file names, path names, user 
  112.     access privileges, etc.  The usual stuff one would need to have defined 
  113.     to operate a BBS.  This program should be run only once to set up the 
  114.     PCBOARD.DAT file the first time, then can be put away (unless you need 
  115.     to edit the file later).  The PCBOARD.DAT file does not change from one 
  116.     door execution to another.  However, you MAY need two copies of the 
  117.     file, one for doors using the version 12.1 format and one for doors 
  118.     using the version 14.0 format. 
  119.  
  120.     MAKE_USR creates and maintains the USERS file which, on PCBoard 
  121.     systems, contains the user database information.  If none exists on the 
  122.     first usage of this program, it is properly created with the Sysop 
  123.     record as record #1 and the user records following.  Some PCBoard doors 
  124.     need this file to look up user stats and security info.  After 
  125.     creating/updating this file, it calls MAKE_SYS (which must be in the 
  126.     DOS PATH) to create the PCBOARD.SYS file. 
  127.  
  128.  
  129.   USING MAKE_SYS: 
  130.   --------------
  131.  
  132.     Program features:
  133.  
  134.       This program is a lot more flexible than any others like it that I've 
  135.       seen.  While they just barely cover some of the basics, I go into the 
  136.       internals of the PCBOARD.SYS file.  Not only do I set the proper 
  137.       values according to what the BBS uses, I also allow for command line 
  138.       switches to set options that door programs might use. 
  139.  
  140.       MAKE_SYS doesn't require a lot in order for it to work.  In fact, it 
  141.       doesn't really require ANYTHING to use it for normal purposes.  To 
  142.       use it, simply call it by name.  You don't have to be in the GT 
  143.       directory for it to find the GTUSER.BBS file.  It looks in the 
  144.       environment to find the GTPATH variable and then looks in the 
  145.       directory that it points to.  Then, it reads the GTUSER.BBS file, 
  146.       parses it into it's constituent data fields, converts them into the 
  147.       PCBoard equivalent, adds in any command line parameter switch 
  148.       settings, and then writes it out as a PCBOARD.SYS file in the current 
  149.       directory. 
  150.  
  151.       MAKE_SYS uses default values for everything in the PCBOARD.SYS file, 
  152.       including the version of the format for the file.  But the option to 
  153.       control certain key areas has been built in.  The PCBOARD.SYS file 
  154.       has a multitude of data fields in it which contain various kinds of 
  155.       information from the BBS for doors to use at their discretion.  Many 
  156.       of these have no GT equivalent, so I made up some reasonable values 
  157.       for them.  There are also a bunch of 'flag' values which can each 
  158.       turn on or off a particular option.  These can be controlled by using 
  159.       a set of command line switches.  In the following paragraphs I will 
  160.       attempt to explain what each of these switches does and what the 
  161.       default value is. 
  162.  
  163.  
  164.     Command Line Switches: 
  165.  
  166.       All switches must start with either a slash ('/') or a hyphen ('-'), 
  167.       followed by a letter defining the type of switch and then a colon 
  168.       (':').  There are two kinds of switches in use here.  One kind takes 
  169.       a 'Y' or 'N' value to turn 'on' or 'off' an option, respectively and 
  170.       the other takes a numeric value.  However, there is one command line 
  171.       option that is NOT a switch.  This one is simply a question mark 
  172.       ('?') and it tells MAKE_SYS to list the help screen.  This option 
  173.       must be the only thing on the command line.  Anything after it will 
  174.       be ignored and anything before it will cause a error.  To use it, 
  175.       simply enter: 
  176.  
  177.            MAKE_SYS ? 
  178.  
  179.       Each switch must be separated by a space on the command line in order 
  180.       for the program to recognize it as a separate switch.  The order in 
  181.       which they appear is not significant, nor is the case (upper or 
  182.       lower) of the letter in the switch.  Here is a list of the available 
  183.       switches: 
  184.  
  185.        Switch   Value(s)   Description 
  186.          /A:     Y or N    Caller Alarm. 
  187.                              Some doors will beep or otherwise make some 
  188.                              kind of noise to let you know a caller has 
  189.                              entered it.  If this option is turned off, you 
  190.                              won't hear the beep.  The default for this is 
  191.                              to turn it off (I don't want my computer 
  192.                              beeping at me all the time). 
  193.          /B:     Y or N    Sysop Page Bell. 
  194.                              In most dedicated door program, the Sysop can 
  195.                              enter 'chat' mode with the user.  But some 
  196.                              doors can also 'page' the Sysop in much the 
  197.                              same way as they can in the main board.  This 
  198.                              switch controls whether they can or not.  The 
  199.                              default is 'not'. 
  200.          /C:     number    Comm Port Select. 
  201.                              In version 14.0, but not version 12.1, you can 
  202.                              put the comm port number in the PCBOARD.SYS 
  203.                              file.  Valid values are 0, 1 & 2.  If a 0 is 
  204.                              used, 'local' mode is forced.  See the section 
  205.                              below on 'local' operation.  The default comm 
  206.                              port is COM1. 
  207.          /D:     Y or N    Display Active. 
  208.                              Normally, the console display is active while 
  209.                              the user is in a door.  This is so the Sysop 
  210.                              can see who is doing what on the system.  But 
  211.                              if the Sysop should want to disable the 
  212.                              display, a value of 'N' would do it.  
  213.          /G:     Y or N    ANSI Graphics Override. 
  214.                              GT provides doors with the current status of 
  215.                              the ANSI mode.  This had been a problem at one 
  216.                              time with some conversion programs that did 
  217.                              not properly set this switch.  The default is 
  218.                              to use the setting in the BBS.  This switch is 
  219.                              only for those special occasions where an 
  220.                              override is needed. 
  221.          /N:     number    Node number.
  222.                              This can be used to indicate to the door what 
  223.                              node number it's currently running on, in a 
  224.                              multi-node system.  This is used only in the 
  225.                              version 14.0 format.  A suboption to this 
  226.                              switch is a letter code of either 'A' or 'U', 
  227.                              which means that node is 'available' or 
  228.                              'unavailable' for a node chat.  This code must 
  229.                              be separated from the node number by another 
  230.                              colon.  It may be omitted if not used.
  231.          /P:     Y or N    Printer Logging. 
  232.                              This switch turns on or off the printer 
  233.                              logging feature of the doors that log caller 
  234.                              activities on a printer.  I'm not sure how 
  235.                              many people have a printer hooked up to their 
  236.                              BBS computer, but I'm not one of them.  So the 
  237.                              default for this is NOT to use a printer (it's 
  238.                              just a waste of paper, anyway). 
  239.          /T:     number    Time Allowance Override. 
  240.                              GT doesn't provide doors with an accurate time 
  241.                              value of how long the caller has on the 
  242.                              system, but MAKE_SYS can figure it out from 
  243.                              the info it DOES provide.  However, if you 
  244.                              want a user to have a certain 'fixed' amount 
  245.                              of time in a door, specify that amount, in 
  246.                              minutes, on this switch.  The number must be 
  247.                              between 1 and 1440 minutes.  This will 
  248.                              override the default of using the amount left 
  249.                              on the board. 
  250.          /V:     number    PCBoard Version. 
  251.                              Even though version 14.0 of PCBoard has yet to 
  252.                              be officially released (as of this writing), 
  253.                              most PCBoard doors out right now are made for 
  254.                              use under PCBoard version 12.1.  Therefore, 
  255.                              the default is to make a ver. 12.1 compatible 
  256.                              format of PCBOARD.SYS.  If you wish to run a 
  257.                              version 14.0 compatible door, specify a '14' 
  258.                              as the value for this switch.  You may also 
  259.                              specify a '12' if you wish for informational 
  260.                              purposes.  The result will be the same as if 
  261.                              you did not use it at all. 
  262.  
  263.  
  264.       When specifying a command line switch that takes a Y/N value, you 
  265.       need only specify the first letter to define the value.  In other 
  266.       words, you could use 'YES' or 'NO' if you wanted, but MAKE_SYS only 
  267.       looks at the first letter of the value to identify it.  So, I could 
  268.       specify a switch with something like 'You_betcha!' and it would 
  269.       interpret it as a 'Y' only.  For these types of switches, simply 
  270.       specifying the switch itself, without any Y/N value, will assume a 
  271.       'Y' value.  
  272.  
  273.       On the switches that require a numeric value, it must be a positive 
  274.       integer.  If the first character is not a number, an error is 
  275.       returned.  Numbers after a decimal point are ignored. 
  276.  
  277.  
  278.     Time Calculations:
  279.  
  280.       The GTUSER.BBS file provides minimal information on the amount of 
  281.       time left on the board.  It provides the amount of time left till the 
  282.       end of the current call and the amount of time left till the next 
  283.       scheduled event.  It also provides the time (in HH:MM format) that 
  284.       the file was written.  Since none of these time values are current as 
  285.       of the moment the BBS exits to the door, it is up to the door program 
  286.       to figure out from this information (and also the current DOS time) 
  287.       what amount of time the user actually has left on the board.  It is a 
  288.       good idea to do this calculation anyway, even if a future version of 
  289.       GT rewrites the GTUSER.BBS file before running the door or includes 
  290.       more information in it on the time left on the board.  This way, you 
  291.       will KNOW you are getting an accurate time calculation. 
  292.  
  293.       MAKE_SYS has the ability to figure out how much time the user has 
  294.       left by using a combination of things.  It takes the time entry from 
  295.       GTUSER.BBS, which was the 'current' time when the file was written, 
  296.       and calculates from the DOS time how much time has elapsed since 
  297.       then.  Once I get the elapsed time, I get the total time allowed for 
  298.       that call, be it the regular 'total' time or the 'event' time (as 
  299.       specified in GTUSER.BBS).  If the event time comes before the total 
  300.       time, I use it instead, and it takes off 5 minutes from that time for 
  301.       GT's 'pre-event wait', since it's not included in the value from the 
  302.       file.  It then finds out how much time is remaining by subtracting 
  303.       the elapsed time from the total allowed time. 
  304.  
  305.       When calculating the time left on the board, I also take off 2 
  306.       minutes from the 'allowed' time.  This will insure the user does not 
  307.       come back from the door only to be rudely kicked off because the time 
  308.       ran out on the board. 
  309.  
  310.  
  311.     Local Operation: 
  312.  
  313.       In GT Power ver. 14 and up, the baud rate parameter in the GTUSER.BBS 
  314.       file will read 'LOCAL' if the Sysop has logged in locally at the 
  315.       console.  GT Power ver. 13 did NOT do this.  So, if the Sysop wanted 
  316.       to use a door in 'local' mode, the GTUSER.BBS file would have to be 
  317.       edited to show 'LOCAL' in place of the baud rate for the conversion 
  318.       program to work properly and set 'local' mode (assuming the door 
  319.       program didn't have a special switch to use local mode).  MAKE_SYS 
  320.       can work around this problem by using the '/C:' (Comm Port Select) 
  321.       switch.  If a comm port of '0' is specified, a 'local' mode is forced 
  322.       regardless of the status of the baud rate parameter in GTUSER.BBS.  
  323.       This way, the Sysop of a GT 13.00 BBS can log on locally by forcing 
  324.       the 'local' condition.  GT 14.xx Sysops don't really need this 
  325.       feature since the 'LOCAL' parameter would already be specified in 
  326.       GTUSER.BBS. 
  327.  
  328.  
  329.     Fixed DTE:
  330.  
  331.       The PCBOARD.SYS for version 14.0 of PCBoard has a field for 
  332.       specifying a 'fixed' DTE (computer-to-modem speed).  MAKE_SYS has no 
  333.       way of knowing what the fixed DTE is that GT in using, if any.  So 
  334.       this baud rate is set to the same as in GTUSER.BBS (supposedly the 
  335.       computer-to-modem speed) or to 2400 baud if in 'local' mode (why 
  336.       not?).
  337.  
  338.  
  339.     PCBoard-Specific Data:
  340.  
  341.       There is a lot of different kinds of data stuffed into this little 
  342.       128-byte file.  Much of it is specific to PCBoard operations.  These 
  343.       data fields contain such stuff as user record number, download 
  344.       limits, conference areas visited, node chat status, etc.  These have 
  345.       no direct GT counterparts, so I put in the appropriate data to make 
  346.       it workable in a situation where this data might come under real use 
  347.       by some doors.  ProDoor is an example.  It uses several areas of 
  348.       information in this and other files to do it's job.  I'm not 
  349.       guaranteeing that ProDoor will work using MAKE_SYS as part of it's 
  350.       door setup batch routine, but it's at least a step closer.
  351.  
  352.       There is one field, however, that PCBOARD.SYS uses which is not 
  353.       supported with the equivalent information from GT.  This is the 
  354.       password field.  First of all, I don't know the format of the 
  355.       GTMAIL.CTL file where GT stores it's user records.  But that's beside 
  356.       the point.  I'm using a 'fake' password in this field.  I don't want 
  357.       to jeopardize anyone's security by fetching their real password from 
  358.       their user record in GT, so I'm using the word 'PASSWORD' in this 
  359.       field.  I doubt many door programs will use this field much, anyway.  
  360.       But just in case you start experiencing problems with a door not 
  361.       allowing you in because of a bad password, you'll need to edit the 
  362.       data files of that door to fix things. 
  363.  
  364.  
  365.     Undocumented Features: 
  366.  
  367.       I'm including this section because of a couple features that probably 
  368.       should be described but, for all intents and purposes, should be 
  369.       considered 'undocumented'.  These are 'extra' command line parameters 
  370.       that are supported solely for the use of future programs I may make 
  371.       as an interface to certain doors that use several other PCBoard 
  372.       files.  An example of this kind of door is ProDoor.  As such, these 
  373.       extra parameters have no use for the casual user in general.  
  374.  
  375.       There are two command line parameters that are recognized by MAKE_SYS 
  376.       which would normally be passed to it by the future interface programs 
  377.       using it.  If they are used at all, they must appear in a very 
  378.       specific order. 
  379.  
  380.       The first parameter is specified by the '@' character and is 
  381.       immediately followed by a number (no spaces).  It MUST be the first 
  382.       option after the program name.  It specifies the user number for the 
  383.       current user as it is registered in PCBoard's user database.  This 
  384.       value must be a positive integer (greater than 0). 
  385.       
  386.       NOTE:  Some doors look at this field in the PCBOARD.SYS file to 
  387.              determine if the Sysop is online (user record number 1).  
  388.              Since a '1' is used by default, you may need to use this to 
  389.              make the door work for others. 
  390.  
  391.       The other parameter is for use only in the version 14 format 
  392.       PCBOARD.SYS file (it is ignored in the version 12 file).  It is 
  393.       specified by the '#' character and is also immediately followed by a 
  394.       number.  This parameter MUST be the second one on the command line 
  395.       and MUST follow the '@' parameter described above (ie. you can't use 
  396.       this one if you're not using the other one).  This one specifies a 
  397.       fixed DTE baud rate in case you are using a USR, Hayes or similar 
  398.       modem that supports a fixed computer-to-modem baud rate.  Valid baud 
  399.       rate values on this option are 9600 and 19200.  Those are the most 
  400.       often used and the only ones I support here. 
  401.  
  402.       As I said before, IF these options are used at all by the user, they 
  403.       must be used in this order.  If these extra options are not the first 
  404.       and second parameters, respectively, on the command line, they will 
  405.       cause an error.  All other parameters (the normal ones specified with 
  406.       the '/' and/or '-') are to follow these.  They may be in any order in 
  407.       relation to each other. 
  408.  
  409.  
  410.     Exit Return Codes:
  411.  
  412.       When exiting, MAKE_SYS sets a return code according to the results of 
  413.       the operation.  This result code can then be tested by DOS in the 
  414.       batch file with the ERRORLEVEL statement.  There are 3 possible codes 
  415.       in all.  If all is well and the PCBOARD.SYS file was created 
  416.       properly, it returns a code of '0'.  If there was an error in the 
  417.       command line somewhere, like a bad command switch or value, it 
  418.       returns a result code of '1'.  The final result code is for a file-
  419.       related error.  The reasons for this could be if the GTUSER.BBS could 
  420.       not be read, the GTPATH environment variable was missing or if the 
  421.       PCBOARD.SYS file could not be written properly.  The result code in 
  422.       this case is '2'.  These result codes may not be of much use to the 
  423.       casual user, but may be used by any future programs I make to 
  424.       interface with these programs. 
  425.  
  426.  
  427.   USING MAKE_DAT: 
  428.   --------------
  429.  
  430.     I know of very few GT to PCBoard conversion programs that create the 
  431.     PCBOARD.DAT file.  And even at that, they only do a limited job on it, 
  432.     so they are far from being complete for a door that needs to get some 
  433.     information from it.  MAKE_DAT will allow you to create and edit a 
  434.     complete file for those door programs that need to use it.  I searched 
  435.     far and wide and went through great pains to get information on the 
  436.     data formats for this file, so I hope somebody appreciates it.  Some 
  437.     people may wonder why I went to this extent when only a few items are 
  438.     read by most doors.  The reason is that I wanted to make it useful for 
  439.     ANY door, including ones that interfaced very closely to PCBoard. 
  440.  
  441.     Since this file only needs to be made once, you can put MAKE_DAT away 
  442.     someplace until you need it again for editing the file.  Also, it would 
  443.     be best to put the PCBOARD.DAT file in a place common to where you 
  444.     normally put these files for your PCBoard doors to use.  
  445.  
  446.     This program provides an easy-to-use interface for users while editing 
  447.     the data fields of the PCBOARD.DAT file.  In fact, because of the ease 
  448.     of use and power, I wouldn't be surprised if some PCBoard Sysops used 
  449.     it as a 'quick fix' utility for reconfiguring the file.
  450.  
  451.     For a reference to the data fields in this file, see the included files 
  452.     PCBDAT.REF & PCBDAT.OTL, both of which are contained in the file 
  453.     PCBDATRF.ZIP along with some documentation in PCBDATRF.DOC.  They 
  454.     describe the data formats of both the version 12.1 and 14.0 files.  The 
  455.     file PCBDAT.REF is a plain ASCII 'block save' file generated from the 
  456.     file PCBDAT.OTL.  The file PCBDAT.OTL is the original work file I was 
  457.     using when putting things together.  It's a SideKick Plus Outline file.  
  458.     You will need SideKick Plus or some kind of conversion program to use 
  459.     it. 
  460.  
  461.  
  462.     Running The Program:
  463.  
  464.       When you first start up the program, you may include the pathname of 
  465.       where the PCBOARD.DAT file is to be on the command line.  If the file 
  466.       exists in that directory, you will be asked to use the existing 
  467.       information in it, overwrite it with a new file or to abort the 
  468.       program without doing anything.  If you choose to use the existing 
  469.       data, it will automatically determine what format file it is, load it 
  470.       in and then go to edit it.  If you should want to overwrite the file, 
  471.       it continues as if you were creating a brand new file by asking which 
  472.       version format it should be in.  This is a multiple choice field (see 
  473.       below), so you use the cursor left and right to select the version 
  474.       number you want and then press F10 to 'accept' this choice.  After 
  475.       selecting the version, you can start editing it.  If you decide to 
  476.       abort at this point, just press ESC.  When starting a new file, the 
  477.       data fields are all set up with default values. 
  478.  
  479.       Once you get into the editing mode, a notice showing which version of 
  480.       file you are editing is displayed in the upper left of the 'work 
  481.       screen' area. 
  482.  
  483.  
  484.     Moving Through The Fields:
  485.  
  486.       To move from one field to another, you would use the up and down 
  487.       cursor keys and the tab keys.  The up arrow moves you to the next 
  488.       higher field above the current one.  In the case where there are 
  489.       multiple columns of fields, it will move to the first column of the 
  490.       bottom line of the columns (unless you move to a previous page which 
  491.       will put you on the last column).  With this in mind, you can 
  492.       probably assume the down arrow moves down through the fields.  It 
  493.       moves to the first column of the top line in multi-column areas. 
  494.  
  495.       To move across through multiple columns of fields, you use the tab 
  496.       key.  It will move forward through the columns, wrapping at the last 
  497.       column to the first one of the next line.  It also can move down to 
  498.       the following field below the current one in single-column screens.  
  499.       If you want to back up to the previous field in a row, use the shift-
  500.       tab key (referred to here as a 'backtab').  The backtab performs the 
  501.       opposite function of the tab.  With it, you can move backwards 
  502.       through the columns, wrapping from the first column to the last one 
  503.       on the previous line.  You may also move upward through the screen 
  504.       'page' of single-column fields. 
  505.  
  506.       You will notice that I refer to the screens as 'pages' of fields.  
  507.       This is how they are structured.  You may move 'off' the bottom of 
  508.       one page to the top of the next page or 'off' the top of a page to 
  509.       the bottom of the previous one.  The page number is displayed in the 
  510.       upper right corner of the 'work screen' area.  The last page will 
  511.       wrap around to the first page as will the first page wrap to the 
  512.       last.  This structure is similar to a circle where you can keep going 
  513.       'round and 'round to find the things you want. 
  514.  
  515.       You may move through the pages by using PgUp to go backwards through 
  516.       the pages (page 2 to page 1, etc.) and PgDn to go forward (page 1 to 
  517.       page 2, etc.).  This will place the cursor at the top of the page 
  518.       (first field) for you to go from there.  This makes for an easy trip 
  519.       to the field you want to edit, if you know what page it's on. 
  520.  
  521.  
  522.     Editing The Fields: 
  523.  
  524.       The PCBOARD.DAT file is a very complex data file with a LOT of 
  525.       information stored in it.  But I was able to break it down and create 
  526.       three different types of fields, two of which are quite similar (I 
  527.       derived the function for handling one from the other).  These field 
  528.       types are multiple choice, toggle and text entry. 
  529.  
  530.       The multiple choice fields offer you a selection of choices.  You use 
  531.       the left and right arrow keys to move the selection cursor between 
  532.       them.  Once the cursor is on the choice you want, you may go on to 
  533.       the next field and edit it. 
  534.  
  535.       The toggle fields work in exactly the same way as the multiple choice 
  536.       fields.  You use the left and right arrow keys to move between two 
  537.       possible choices, 'on' and 'off'.  These kinds of fields control a 
  538.       true/false or on/off type of option with usually enables and disables 
  539.       certain functions in the PCBoard BBS.
  540.  
  541.       The text entry field is a bit more complex.  In these fields, you 
  542.       might have a couple of different kinds of data that may be edited.  
  543.       This may be standard alphanumeric text (like filenames, pathnames, 
  544.       prompt lines, etc.), numeric entries or time entries (in HH:MM 
  545.       format).  The filenames and pathnames, text that normally should be 
  546.       upper case, are forced as such.  In other words, you can't type a 
  547.       lower case letter in a filename.  But in the prompt lines and Sysop 
  548.       name field, you may use upper and lower case letters as well as any 
  549.       other kinds of characters.  I don't do any checking on the validity 
  550.       of the filenames and pathnames.  That's up to you and what ever 
  551.       program needs this information.  Numeric entries only allow numbers 
  552.       to be entered, as do the time entries. 
  553.  
  554.       When editing a text entry field, you have the use of certain cursor 
  555.       keys and other keys to help move around the field and edit the data.  
  556.       To move through the data in the field, you may use the left and right 
  557.       cursor keys.  Left moves you one space to the left, until you hit the 
  558.       left side of the field.  Right moves you one space to the right until 
  559.       you reach the limit on that end, which may be the space right after 
  560.       the end of the current text or the rightmost location of the field 
  561.       (whichever come first).  The HOME key moves you to the beginning of 
  562.       the field and the END key moves you to the end of the text. 
  563.  
  564.       If you should reach the rightmost location of the field, the cursor 
  565.       will appear to go off the end and disappear.  This is because it is 
  566.       out of the range of the field and you can't go any further.  I've 
  567.       seen some routines where it reaches the end of the field and stops, 
  568.       then if you go to backspace, you take the character under the cursor 
  569.       with you to the left.  If you wanted to delete that character, you 
  570.       have to go another step to do it.  Not here.  If you go to the end of 
  571.       the data field, you can still use backspace to delete that last 
  572.       character.  The backspace key deletes the character on the left of 
  573.       the cursor, moving all data after it one space to the left.  The DEL 
  574.       key deletes the character under the cursor and moves text on the 
  575.       right to fill in. 
  576.  
  577.       Normally, when you first go into a text entry field, you go in using 
  578.       'overwrite' mode, ie. text you type is written over the existing 
  579.       data.  If you hit the INSERT key, you may toggle 'insert' mode on and 
  580.       off.  With it on, text you type is inserted at the current cursor 
  581.       location pushing the data after it to the right.  A status indicator 
  582.       on the bottom line of the screen will show a low intensity 'Ins' when 
  583.       insert mode is off and a highlighted one when on. 
  584.  
  585.       The above functions work in both the regular alphanumeric entries and 
  586.       numeric entries (where the text must be all numbers).  But a slightly 
  587.       different setup is used when editing a time entry.  To save on some 
  588.       code so I didn't have to move characters all over the place, I 
  589.       disabled the backspace, DEL and INSERT keys for the time entries.  In 
  590.       these, you simply type the numbers and use the left/right cursor keys 
  591.       to move through it.  The cursor will automatically jump over the 
  592.       colon in the middle of the time field. 
  593.  
  594.       Once you have finished typing in the data (if any), you may move on 
  595.       to the next field. 
  596.  
  597.  
  598.     Clicks And Buzzes: 
  599.  
  600.       One little thing I included to help let you know what's going on is a 
  601.       beeper.  It 'clicks' whenever you move from one field to another and 
  602.       'buzzes' when you encounter an error.  The errors may be something 
  603.       like trying to move beyond the left or right boundaries of a field, 
  604.       trying to type more text than a field can hold, typing an illegal 
  605.       character for an entry, or entering a number for a numeric entry that 
  606.       is out of the range for that entry.  This last one happens after you 
  607.       try exiting from the field to let you know it won't accept it as-is. 
  608.  
  609.  
  610.     Exiting And Saving:
  611.       
  612.       Now what kind of program would this be if you couldn't exit from it 
  613.       or save the data?  If, for some reason, you decide NOT to keep the 
  614.       changes to the data you're currently editing, you may hit ESC to 
  615.       abort the program.  If you want to exit and save the data, hit the 
  616.       F10 key.  Pretty simple, eh? 
  617.  
  618.  
  619.   USING MAKE_USR: 
  620.   -------------- 
  621.  
  622.     This is a kind of database management system, in a very limited way.  
  623.     Many of the newer PCBoard doors, and a few of the older ones, like to 
  624.     pry into the users database file to look up the current user's record.  
  625.     I don't know why, except maybe to look up certain stats and/or security 
  626.     info (the only thing I can think of it would want out of there).  Until 
  627.     now, you had to find something to appease these "lookie-loo's" from 
  628.     trying to access a non-existant file (usually).  This might include 
  629.     building a temporary 'fake' USERS file or using some other file 
  630.     (renamed) for doors that only look to see if it exists.  While I can't 
  631.     make any claims that my utility will make anything other than a 'fake' 
  632.     USERS file, it does it a little better than some other utilities. 
  633.  
  634.     MAKE_USR will create a fairly complete USERS file that conforms (to the 
  635.     best of my knowledge) to the real thing.  Under normal circumstances, 
  636.     the first record in the USERS file is reserved for the Sysop.  After 
  637.     that are the records for the users.  MAKE_USR will create a new USERS 
  638.     file if one does not exist, using a Sysop record as record #1.  It will 
  639.     then append extra records as new users enter the door using this 
  640.     utility.  If a user enters this door and already has a user record in 
  641.     this file, MAKE_USR will find it and use that record number, otherwise 
  642.     a new one is appended onto the end and the new record number is used. 
  643.  
  644.  
  645.     The Configuration file:
  646.  
  647.       To use MAKE_USR, you need to pass the name of it's configuration file 
  648.       to it on the command line.  This configuration file has the following 
  649.       format, of which the first five lines MUST exist: 
  650.  
  651.          Field data                             |Comment
  652.          ---------------------------------------+--------------------------
  653.          Path & filename to the USERS.          |Where to put it. 
  654.          Sysop name (as used on the BBS)        |For the Sysop record. 
  655.                                                 |If blank, "SYSOP" is used. 
  656.          Baud rate the comm port is locked at.  |This may be either blank 
  657.                                                 |or '0' if none, '9600' or 
  658.                                                 |'19200' if used. 
  659.          Version of PCBoard.                    |Either "PCB12" or "PCB14". 
  660.          Command switches to use with MAKE_SYS. |May be blank if none used, 
  661.                                                 |or 'extra' switches to use.
  662.          Security level conversions             |Up to 62, one per line. 
  663.  
  664.       Most of these should be pretty obvious, but to follow up on some, the 
  665.       third entry is used if you lock the baud rate in GT (the computer-to-
  666.       modem baud) and must be either 9600 or 19200, since those are the 
  667.       only ones I support.  If you don't lock the comm port, use either a 0 
  668.       or leave it blank.  The fourth line tells MAKE_USR which format to 
  669.       use when accessing the USERS file pointed to in line 1.  Upper and 
  670.       lower case are treated the same.  Line five is passed directly to 
  671.       MAKE_SYS as 'extra' command switches that you might use on a regular 
  672.       basis with that program.  They serve no purpose inside MAKE_USR.  
  673.  
  674.       Lines 6 and on for up to 62 lines are a list of security level 
  675.       conversions you may want to define for converting GT's levels of 0-9, 
  676.       A-Z and a-z to PCBoard's levels of 0-120 (0=lowest, 99=highest for 
  677.       normal users, 100-120 are usually Sysop levels).  If you want to give 
  678.       your users different levels in the PCBoard doors that use them, 
  679.       define each conversion as such:  <GT_level>=<PCB_level> 
  680.  
  681.       In the sample config. file that comes with this program, are some 
  682.       definitions.  If you specify a level, either for GT or PCB, that is 
  683.       out of range for the system, you'll get an error.  The GT level '0' 
  684.       is predefined within MAKE_USR as the Sysop level, having an 
  685.       equivalent PCB level of 120.  If a user enters a door with a level 
  686.       not defined here, his PCB level defaults to 10. 
  687.  
  688.     After creating and/or updating the USERS file, it uses the user record 
  689.     number, along with the locked baud rate value (if any) and the 'extra' 
  690.     command switches (from the config. file), to build a command line for 
  691.     MAKE_SYS.  It uses the 'undocumented features' described above in the 
  692.     section for MAKE_SYS.  MAKE_USR will then execute a DOS shell to run 
  693.     MAKE_SYS using this command string of parameters.  MAKE_SYS must be 
  694.     somewhere in the current directory or in the DOS PATH in order to run.  
  695.     This will save you the extra step of yet another program to run trying 
  696.     to get the door up and running. 
  697.  
  698.  
  699.     Network use: 
  700.  
  701.       You probably didn't expect to see this section, did you!  Well, here 
  702.       it is anyway, so there!  Nyah!
  703.       
  704.       Since I am running a LAN (Local Area Network) on my BBS with four 
  705.       computers (nodes) attached to it (three for my BBS, one for myself), 
  706.       and since a future version of GT (soon to come out, as of this 
  707.       writing) will be supporting multi-node operation, it is entirely 
  708.       possible for two or more nodes to access this USERS file at once.  
  709.       Therefore, I'm using file sharing functions in this program.  
  710.       Hopefully, it will still work on machines using a version of DOS 
  711.       prior to 3.0 (according to the compiler docs, it should ignore the 
  712.       sharing part of the file access), but if you have problems using it 
  713.       on such a system, let me know.  This is the first program I've 
  714.       written that uses file sharing functions, so we have yet to REALLY 
  715.       see if it works! 
  716.  
  717.       MAKE_USR will open the USERS file with a "Deny None" sharing access, 
  718.       which allows multiple nodes access to it for both reading and 
  719.       writing.  Hopefully it won't have any problems.  The config. file is 
  720.       opened for reading only, so there should be no problem there, either.  
  721.       Again, if you have problems with this, like if your getting sharing 
  722.       violations, let me know and I'll try to fix it. 
  723.  
  724.  
  725.   SHAREWARE: 
  726.   ---------
  727.  
  728.     I am releasing these programs to the public as Shareware.  If you 
  729.     should find them useful and continue using them past a trial period of 
  730.     two weeks, a contribution of $7.50 (US) is requested.  Please send a 
  731.     check or money order to: 
  732.  
  733.          Scott Swaine
  734.          c/o Console Command Headquarters
  735.          160-D N. Fairview Ave.
  736.          Suite 223
  737.          Goleta, CA  93117
  738.  
  739.     These programs are full working versions so there is no 'Registered 
  740.     Copy' to buy.  But I hope you see fit to send in your contribution 
  741.     anyway.  Supporting this software will encourage me to bring out new 
  742.     and better programs in the future.  When sending in your contribution, 
  743.     please include a short note on where you found this program so I can 
  744.     get some idea of the extent of the distribution of this software. 
  745.  
  746.  
  747.   CONCLUSION: 
  748.   ----------
  749.  
  750.     These programs are probably all you'll need to set up and run most 
  751.     PCBoard doors successfully on a GT Power BBS.  I went to great lengths 
  752.     to make sure that these programs reproduced the exact data required by 
  753.     those doors.  I hope they serve you well. 
  754.  
  755.     If you should ever find a problem in the operation of these programs, 
  756.     let me know so I can fix it.  I try very hard to make programs that are 
  757.     bug-free, but even *I* can miss something (although it doesn't happen 
  758.     very often, heh heh).  Bug reports, questions, comments, etc. can be 
  759.     directed to me via the information below.  Enjoy!
  760.  
  761.  
  762.                                        Scott Swaine, Sysop 
  763.                                        Console Command Headquarters 
  764.                                        (805) 968-5094, 24 hours/day 
  765.                                        300/1200/2400/9600 baud, 8-N-1 
  766.                                        GT Network net/node 054/000 
  767.  
  768.                                        CompuServe ID:  72057,1542 
  769.  
  770.